1. The Field of the Invention
The present invention relates to network messaging. More specifically, the present invention relates to methods, systems and computer program products for using a portion of a request and response to maintain state information that is helpful to process the response.
2. Background and Relevant Art
Computer networks have enhanced our ability to communicate and access information by allowing one computer or device (hereinafter both referred to as a “computing system”) to communicate over a network with another computing system using electronic messages. In order for such electronic messaging to be meaningful, the receiving computing system must process the received electronic message correctly. For example, an encrypted e-mail message must be decrypted using the proper decryption algorithm, then parsed into its various components (e.g., message body and “from”, “to”, “cc” and “time sent” header fields). If decryption or parsing are performed in an incorrect manner, the e-mail would not be able to be displayed properly to a user.
Often, supplemental information is necessary or helpful in order to appropriately process a received electronic message. Sometimes, that supplemental information is locally available for retrieval at the time the electronic message is received. Other times, information from another network location is accessed in order to appropriately process the received network message.
Often, much of the information needed to process an electronic message is included within the electronic message itself. For example, often the network message has a header field that includes information for processing the message. However, the number and types of network fields are often restricted to particular types of data. Including such information in header fields of the electronic message is not helpful if the information does not conform to the format required by the header fields.
One conventional technology that allows for the information to have a more flexible format involves the use of electronic “cookies”. When a client navigates to a particular network site, that network site has the client store a “cookie” if cookies are enabled on the client. The cookie contains text information that is useful for the network site to process subsequent requests received from the client. When the client submits a subsequent request to the network site, the client browser is configured to automatically transmit the cookie to the network site as well.
Cookies are often used to provide a convenient customized experience for a client based on client preferences. For example, a weather web site may store the zip code of the client so that the web site may immediately provide the local forecast without asking again for the user to enter the zip code. Accordingly, when a cookie is included in an electronic message, the network site may use the cookie to process the electronic message. Also, the types and structure of information included in a cookie is practically unrestricted so long as that information may be expressed within the character set that is allowed by the cookie protocol, and so long as the network site is capable of interpreting the information given its type and structure.
Although cookies are useful in their operating environment, the operating environment for cookies is fairly restricted. For example, the use of cookies involves the flow of information from a browsing client to a network server. Typically, servers only provide cookies to a client so that the client may store the cookie for later return to the server. In the mean time, the client does not typically do anything else to the cookie other than store the cookie. In contrast, servers do not provide cookies to a client so that the client can use it to process an electronic message from the server. Accordingly, cookies involve only a one-way flow of information from a server to a client. In addition, cookies are typically only used in a browsing environment.
Accordingly, what is desired are mechanisms for providing information needed to process an electronic message regardless of whether the electronic message is from a client or a server, and regardless of whether the electronic message is related to a browse request.